package com.ftg.learn.chapter01;

import java.util.Arrays;

/**
 * 排序
 *
 * @author lenovo
 * @version 1.0
 * @date 2023/5/27 9:36
 */

public class Quick {
    public static void main(String[] args) {
        int[] arr={10,13,2,4,5,9,11,1,6,7,19,34};
        int left=0;
        int right=arr.length-1;

        int middle =arr.length>>1;
        int mval=arr[middle];

    while (true){
        //交换 两个下标
        //首先找到left对应的数据，大于middle
        while (right>left  && arr[left] < mval){
            left++;
        }
        // left 表示上面的while不走了 第一个大于middle的数的下标
        // 再找到right对应的数据，小于middle
        while (right>left && arr[right]>mval){
            right--;
        }
        if (right<=left){
            break;
        }

        arr[right]=arr[right]+arr[left];
        arr[left]=arr[right]-arr[left];
        arr[right]=arr[right]-arr[left];

        //交换
    }
        System.out.println(Arrays.toString(arr));
    }
}
